using System;
using System.Data;
using Csla;
using Csla.Data;
using Microsoft.Practices.ServiceLocation;
using Utpl.Syllabus.Reconocimiento.BL;
using Utpl.Syllabus.Reconocimiento.DAL;
using Utpl.Syllabus.Framework.Common.Util;
using Utpl.Syllabus.Framework.Csla.Base;
using Utpl.Syllabus.Framework.Dal;
using Utpl.Syllabus.Infraestructure.DalAdo;

namespace Utpl.Syllabus.Reconocimiento.DalAdo
{
    /// <summary>
    /// Estereotipo: DAO
    /// Responsabilidad: Acceso a datos para la entidad Asignatura
    /// Autor: Luis Cuenca Macas - Enovatraining. Cia. Ltda.
    /// Fecha: 14/12/2012 10:12:12 AM
    /// </summary>
    public class AsignaturaDao : GenericDaoBase
    {
        public AsignaturaDao(IDatabase db)
            : base(ServiceLocator.Current.GetInstance<IDatabase>(Constantes.CONEXION_SIS_RECONOCIMIENTO))
        {
            SetParameterPrefix("asg_");

            RegisterQuery<AsignaturaCriteria>(Constantes.PRC_OBT_ASIGNATURAS_PLN);

        }

        private void AddCriteriaParameters(AsignaturaCriteria criteria, IDbCommand comando)
        {
            _db.AddParameterWithValue(comando, "en_pln_id", criteria.PlanEstudioId);
            _db.AddParameterWithValue(comando, "ec_tipo_aprobacion", criteria.TipoAprobacion);
        }
        
        void LoadFields(SafeDataReader sdr, AsignaturaInfo item)
        {
            item.AsignaturaId = Convert.ToInt32(sdr.GetValue("asg_id"));
            item.Nivel = Convert.ToInt32(sdr.GetValue("pas_nivel"));
            item.GrupoCreditoId = Convert.ToInt32(sdr.GetValue("grupo_credito_id"));
            item.Codigo = sdr.GetString("asg_codigo");
            item.Nombre = sdr.GetString("asg_nombre");
            item.GrupoCredito = sdr.GetString("grupo_creditos");
            item.Creditos = Convert.ToInt32(sdr.GetValue("creditos"));
        }
    }
}